#include <stdio.h>

int conjunto[4] = {1,2,3,4};
int pertence_ao_subconjunto[4] = {0,0,0,0};

void verifica_solucao () {
  int i;
  int ja_imprimiu = 0;
  printf ("{");
  for (i = 0; i < 4; i++) 
    if (pertence_ao_subconjunto[i]) {
      if (ja_imprimiu) {
	printf (", %d", conjunto[i]);
      } else {
	printf ("%d", conjunto[i]);
	ja_imprimiu = 1;
      }
    }
  printf ("}\n");
}

void gera_solucao(int n) {
  if (n == 4) 
    verifica_solucao();
  else {
    pertence_ao_subconjunto[n] = 0;
    gera_solucao (n + 1);
    pertence_ao_subconjunto[n] = 1;
    gera_solucao (n + 1);
  }
}

int main () {
  gera_solucao (0);
  return (0);
}
